package com.houweishi.module.reimburse.mapper;

import com.houweishi.module.reimburse.domain.OaReimburse;
import com.houweishi.module.reimburse.domain.OaReimburseApproval;

import java.util.List;

/**
 * 报销单管理Mapper接口
 * 
 * @author houweishi
 * @date 2023-02-21
 */
public interface OaReimburseMapper 
{
    /**
     * 查询报销单管理
     * 
     * @param reimburseId 报销单管理主键
     * @return 报销单管理
     */
    public OaReimburse selectOaReimburseByReimburseId(Long reimburseId);

    /**
     * 查询报销单管理列表
     * 
     * @param oaReimburse 报销单管理
     * @return 报销单管理集合
     */
    public List<OaReimburse> selectOaReimburseList(OaReimburse oaReimburse);

    /**
     * 查询报销单管理列表(含业务状态)
     * @param oaReimburse
     * @return
     */
    List<OaReimburseApproval> selectOaReimburseApprovalList(OaReimburse oaReimburse);

    /**
     * 新增报销单管理
     * 
     * @param oaReimburse 报销单管理
     * @return 结果
     */
    public int insertOaReimburse(OaReimburse oaReimburse);

    /**
     * 修改报销单管理
     * 
     * @param oaReimburse 报销单管理
     * @return 结果
     */
    public int updateOaReimburse(OaReimburse oaReimburse);

    /**
     * 删除插入的审批信息记录
     *
     * @param oaReimburse 请假管理
     * @return 结果
     */
    public int deleteBizApprovalRecord(OaReimburse oaReimburse);

    /**
     * 删除报销单管理
     * 
     * @param reimburseId 报销单管理主键
     * @return 结果
     */
    public int deleteOaReimburseByReimburseId(Long reimburseId);

    /**
     * 批量删除报销单管理
     * 
     * @param reimburseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOaReimburseByReimburseIds(Long[] reimburseIds);
}
